package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.BuzTaskAwardsTj;
import com.ruoyi.system.domain.BuzTaskUser;

/**
 * 用户答题情况Service接口
 * 
 * @author ruoyi
 * @date 2023-08-31
 */
public interface IBuzTaskUserService 
{
    /**
     * 查询用户答题情况
     * 
     * @param id 用户答题情况主键
     * @return 用户答题情况
     */
    public BuzTaskUser selectBuzTaskUserById(String id);

    /**
     * 查询用户答题情况列表
     * 
     * @param buzTaskUser 用户答题情况
     * @return 用户答题情况集合
     */
    public List<BuzTaskUser> selectBuzTaskUserList(BuzTaskUser buzTaskUser);
    
    public List<Map> getTodayAwards(BuzTaskUser buzTaskUser);

    /**
     * 新增用户答题情况
     * 
     * @param buzTaskUser 用户答题情况
     * @return 结果
     */
    public int insertBuzTaskUser(BuzTaskUser buzTaskUser);

    /**
     * 修改用户答题情况
     * 
     * @param buzTaskUser 用户答题情况
     * @return 结果
     */
    public int updateBuzTaskUser(BuzTaskUser buzTaskUser);
    
    public int updateReceiveAwardsTime(BuzTaskUser buzTaskUser);
    
    //发送奖励
    public int sendWards(BuzTaskUser buzTaskUser,String openId);
    
    /**
     * 修改用户答题情况
     * 
     * @param buzTaskUser 用户答题情况
     * @return 结果
     */
    public int updateSaveQuestion(BuzTaskUser buzTaskUser);
    
    /**
     * 修改用户答题情况
     * 
     * @param buzTaskUser 用户答题情况
     * @return 结果
     */
    public int nullReceiveAwardsTime(BuzTaskUser buzTaskUser);

    /**
     * 批量删除用户答题情况
     * 
     * @param ids 需要删除的用户答题情况主键集合
     * @return 结果
     */
    public int deleteBuzTaskUserByIds(String[] ids);

    /**
     * 删除用户答题情况信息
     * 
     * @param id 用户答题情况主键
     * @return 结果
     */
    public int deleteBuzTaskUserById(String id);

    int getCountByTaskId(String taskId);

    int getCountByTaskIdAndUserId(String taskId, String userId);
    
    
    int getAwardCountByLongitudePerDay(String id);
    
    
    int getCountByTaskIdByMemberIdCurrDay(BuzTaskUser buzTaskUser);
    
    
    int getCountByTaskIdByLongitude(BuzTaskUser buzTaskUser);

    int getCountByTaskIdAndUserIdPerDay(String taskId, String userId);
    int getAwardCountByTaskId(String taskId);
    int getAwardCountByTaskIdPerDay(String taskId);
    int getAwardCountByTaskIdAndMemberId(String taskId, String userId);
    int getAwardCountByTaskIdAndMemberIdPerDay(String taskId, String userId);

    Map<String, Object> getTaskAwardsTjResult(String taskId);
    
    // 根据活动id查询统计结果（分页）
    Map<String, Object> getTaskAwardsTjResult(String taskId,Integer page,Integer pageSize,Boolean isCount);
    // 根据活动id 查询所有获奖数据
    List<BuzTaskAwardsTj> getAllTaskAwardsResult(String taksId);
    
    
    Map<String, Object> getTaskExamTjResult(String taskId);


    List<Map<String, Object>> getTaskAwardsInfoByTask(String taskId, String userId);
    
    List<Map<String, Object>> getSubmitListByTask(String taskId, String userId);
    /**根据taskId获取统计数据*/
    Map<String, Object> getStatisticsByTaskId(String taskId);
    
    /**根据id统计获奖信息*/
    Map<String, Object> getStatisticsAwardsByTaskId(String taskId);
    

}
